package analizadorLexico;

import analizadorLexico.Token.TipoToken;


public class EstadoAceptacion implements Estado {
	private boolean inicial;
	private boolean retroceso;
	private TipoToken tokenDevuelto;
	private String id;
	
	public EstadoAceptacion(String id, TipoToken tokenDevuelto, boolean retroceso) {
		this.inicial = false;
		this.retroceso = retroceso;
		this.tokenDevuelto = tokenDevuelto;
		this.id = id;
	}

	public void ponInicial(boolean inicial){
		this.inicial = inicial;
	}

	public String dameId(){
		return id;
	}
	
	public boolean dameRetroceso(){
		return retroceso;
	}
	
	public Token dameToken(String lexema){
		Token t = new Token(tokenDevuelto, lexema);
		return t;
	}
	
	public String dameSiguienteEstado(){
		return "q0";
	}
	
	public int transita(char siguiente) throws Exception{
		if (retroceso) return -1;
		else return 0;
	}
	
	public boolean estadoInicial(){
		return inicial;
	}
}
